//定义一个长度为3的数组，数组存储1~3名学生对象作为初始数据，学生对象的学号，姓名各不相同。
//学生的属性:学号，姓名，年龄。
//要求1:再次添加一个学生对象，并在添加的时候进行学号的唯一性判断。
//要求2:添加完毕之后，遍历所有学生信息。
//要求3:通过id删除学生信息,如果存在，则删除，如果不存在，则提示删除失败
//要求4:删除完毕之后，遍历所有学生信息。
//要求5:查询数组id为“heima002”的学生，如果存在，则将他的年龄+1岁
import java.util.Scanner;
public class A28{
    private String id;
    private String name;
    private int age;
    public A28(){}
    public A28(String id,String name,int age){
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public String getId(){
        return id;
    }
    public void setId(String id){
        this.id = id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age = age;
    }

    public static void main(String[] args){
        A28[] arr = new A28[3];
        A28 s1 = new A28("heima001","花花",25);
        A28 s2 = new A28("heima002","之之",27);
        A28 s3 = new A28("heima003","泠泠",24);
        arr[0] = s1;
        arr[1] = s2;
        arr[2] = s3;
        //再添加一个学生
        A28 s4 = new A28();
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学号");
        while(true){
            String id = sc.next();
            if(findId(id,arr)){
                addInfo(s4,id);
                int count = getCount(arr);
                if(count == arr.length){
                    //已经存满了
                    A28[] arr1 = creatNewArr(arr);
                    arr1[count] = s4;
                    printArr(arr1);
                    //删除学生信息,查询更改学生信息
                    comprehensive(arr1);
                }else{
                    arr[count] = s4;
                    printArr(arr);
                    //删除学生信息,查询更改学生信息
                    comprehensive(arr);

                }
                break;
            }else{
                System.out.println("学号已经存在,请重新输入");
            }
        }

    }
    public static void comprehensive(A28[] arr){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要删除的学号");
        int index = getIndex(arr,sc.next());
        deleteInfo(arr,index);
        printArr(arr);
        System.out.println("查询学生信息");
        System.out.println("请输入要查询的学号");
        int index1 = getIndex(arr,sc.next());
        if(index1 >= 0){
            arr[index1].setAge(arr[index1].getAge()+1);
            System.out.println("查询结果为：" + arr[index1].getId() + "," + arr[index1].getName() + "," + arr[index1].getAge());
        }else{
            System.out.println("没有此学生");
        }
    }
    public static void deleteInfo(A28[] arr,int index){
        if(index >= 0){
            //存在就删除
            arr[index] = null;
        }else{
            System.out.println("没有此学生,删除失败");
        }
    }
    public static int getIndex(A28[] arr,String id){
        for(int i = 0;i < arr.length;i++){
            if(arr[i] != null){
                if(arr[i].getId().equals(id)){
                    return i;
                }
            }
        }
        return -1;
    }
    public static void addInfo(A28 s,String id){
        Scanner sc = new Scanner(System.in);
        s.setId(id);
        System.out.println("请输入年龄");
        int age = sc.nextInt();
        s.setAge(age);
        System.out.println("请输入姓名");
        String name = sc.next();
        s.setName(name);
    }
    public static void printArr(A28[] arr){
        for(int i = 0;i < arr.length;i++){
            if(arr[i] != null){
                System.out.println(arr[i].getId() + "," +arr[i].getName() + "," + arr[i].getAge());
            }
        }
    }

    public static A28[] creatNewArr(A28[] arr){
        A28[] arr1 = new A28[arr.length+1];
        for(int i = 0;i < arr.length;i++){
            arr1[i] = arr[i];
        }
        return arr1;
    }
    public static int getCount(A28[] arr){
        int count =0;
        for(int i = 0;i < arr.length;i++){
            if(arr[i] != null){
                count++;
            }
        }
        return count;
    }
    public static boolean findId(String id,A28[] arr){
        for(int i = 0;i < arr.length;i++){
            if(id.equals(arr[i].getId())){
                return false;
            }
        }
        return true;
    }

}